#include <iostream>

using std::cout;
using std::endl;

//函数指针        指针函数
//int (*func)()   int* func()
//
//数组指针        指针数组
//int (*arr)[]    int* arr[]  
void test()
{
    int value = 1;
    int number = 200;
    //当const位于*左边的时候，将其称为指针常量
    const int *pInt = &value;
    /* *pInt = 100;//error,不能修改指针指向变量的值 */
    pInt = &number;//ok,可以修改指针的指向

    cout << endl;//换行
    int const *pInt2 = &value;
    /* *pInt2 = 100;//error,不能修改指针所指变量的值 */
    pInt2 = &number;//ok,可以修改指针的指向

    cout << endl;//换行
    //当const位于*右边的时候，将其称为常量指针
    int * const pInt3 = &value;
    *pInt3 = 100;//ok, 可以修改指针指向的变量的值
    /* pInt3 = &number;//error,不能修改指针的指向 */

    cout << endl;//换行
    const int * const pInt4 = &value;
    /* *pInt4 = 100;//error, 不能修改指针指向的变量的值 */
    /* pInt4 = &number;//error,不能修改指针的指向 */

}

int main(int argc, char *argv[])
{
    test();
    return 0;
}

